package com.ahmedmisbah.andgenplus.codegenerator;

import com.ahmedmisbah.andgenplus.codegenerator.beans.GeneratorDescriptor;
import com.ahmedmisbah.andgenplus.codegenerator.exceptions.CodeGeneratorException;

public abstract class CodeGenerator {

	private GeneratorDescriptor descriptor;
	private boolean integrationAndServiceCodeGenerated = false;

	public GeneratorDescriptor getDescriptor() {
		return descriptor;
	}

	public void setDescriptor(GeneratorDescriptor descriptor) {
		this.descriptor = descriptor;
	}

	public boolean isIntegrationAndServiceCodeGenerated() {
		return integrationAndServiceCodeGenerated;
	}

	public void setIntegrationAndServiceCodeGenerated(
			boolean integrationAndServiceCodeGenerated) {
		this.integrationAndServiceCodeGenerated = integrationAndServiceCodeGenerated;
	}

	public abstract void generateIntegrationAndServiceCode(Object parameters)
			throws CodeGeneratorException;

	public abstract void generatePresentationCode()
			throws CodeGeneratorException;
	
	public abstract void finish()
			throws CodeGeneratorException;

}
